﻿//  --------------------------------
//  Copyright (c) 2010 Michael Schuler, Sascha Burger. All rights reserved.
//  This source code is made available under the terms of the Microsoft Public License (Ms-PL)
//  http://p2pmessaging.codeplex.com/license
//  ---------------------------------
using System;
using System.Collections.Generic;
using p2pMessaging.Interfaces.Contact;

namespace p2pMessaging.Interfaces
{
	/// <summary>
	/// Message represents a single item of communication between contacts.
	/// </summary>
	public interface IMessage
	{
		/// <summary>
		/// Gets or sets the Id of the plugin which sent this message.
		/// </summary>
		Guid PluginId { get; set; }
		
		/// <summary>
		/// Gets or sets the id of the message.
		/// </summary>
		string Id { get; set; }
		
		/// <summary>
		/// Gets or sets the subject of the message.
		/// </summary>
		string Subject { get; set; }
		
		/// <summary>
		/// Gets or sets the sender of the message.
		/// </summary>
		IContact Sender { get; set; }
		
		/// <summary>
		/// Gets the recipients of the message.
		/// </summary>
		List<IContact> Recipient { get; }
		
		/// <summary>
		/// Gets or sets the data of the message.
		/// </summary>
		string Data { get; set; }
	}
}
